1. Technical Field
This invention relates to adapter cards for computer systems. In particular, this invention relates to selection and control of multiple adapter cards within a system.
2. Background Art
In the early days of personal computer systems, the number of peripheral devices attached to a system tended to be small. The systems typically would include a video display, a printer, a disk drive, and perhaps a modem. To control communication between the processor and the peripheral devices, each device was assigned a specific port address (hereafter, port). Adapter cards (hereafter adapters) were used to interface between the processor and each device, and were typically developed to control a single port.
The processor could select a port by placing the port address on the system bus which connected the processor to the other devices in the system. The adapter, which provided the interface between the device and the system bus, would recognize the address and initiate the action directed by the processor. When the processor switched from one device to another, the original device would be deselected by the processor in one bus write operation and then the new device would be addressed by the processor in a second write operation. Typically, each device was controlled by different software because of the differences in the hardware (e.g., printers and modems would each have unique software).
Over time, processors became more powerful, and were able to control many more devices in a system. As the number of peripheral (I/O) devices on a system grew, a plurality of identical devices were often used on the same system. For example, systems applications developed which used multiple video displays instead of the single displays typically found on early computers. Further, adapter technology improved to the point where multiple video ports could be controlled by a single adapter. One result of the improvement of technology in adapters was the situation where multiple types of adapters were used to control a plurality of identical devices. For example, a system which had a single video display with a single port adapter would be expanded to include several additional displays. The displays may have been added one at a time with each having its own adapter. Likewise, several displays may have been added at the same time with a single multi-port video adapter. Therefore, depending on the rate of growth and the timing of the additions to the system, different types of adapters may be used on the same system to control identical displays.
This creates a problem for the software in at least two respects. First, the software may not be compatible with the two types of adapter hardware which would require two versions of software to control identical I/O devices on the same system. Second, there is a performance impact due to the multiple bus writes required to deselect one device and to select another. The compatibility problem also exists in a multi system environment when one system has a single multi-port adapter and a second system has grown from a single device/single port adapter system to multiple devices each having a single port adapter. In that situation, each system would require different software to control the adapters even though the I/O device configuration may be identical (i.e., four displays on a single multi-port adapter in system A and four identical displays on four single port adapters in system B).
In summary, due to the increase in the power and complexity of computers, systems have developed performance problems relating to selection and control of the larger number of I/O devices. In addition, software compatibility problems exist due to the difference in adapter types used on the same system or due to differences in adapter types used in a multisystem environment.